Events Listeners
All
Events.All
Interface
An interface which needs to be implemented and added as a listener to receive all available events.
Extends
Required
Log
Status
PendingResults
ReportResult
PrinterEvents
TransactionStarted
MessageHandling
PhysicalKeyboardEvent
CardBrandDisplay
Basic
Events.Basic
Interface
An interface which needs to be implemented and added as a listener to receive basic events.
Extends
Required
Log
Status
PendingResults
ReportResult
Card Brand Display
Events.CardBrandDisplay
Interface
An interface which needs to be implemented and added as a listener to get events providing information on the supported card brands and/or the card brand used during the transaction.
Methods
deviceCapabilities( List supportedCardBrands );
Parameter | Notes |
---|---|
supportedCardBrands Required List | A list containing the supported card brands |
readCard( CardBrands usedCard );
Parameter | Notes |
---|---|
usedCard Required CardBrands | Name of the card brand |
Code example
public final class EventHandler implements Events.CardBrandDisplay {
@Override
public void deviceCapabilities(List supportedCardBrands) {
// Get supported card brands
}
@Override
public void readCard(CardBrands usedCard) {
// Get the used card brand
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Connection status changed
Events.ConnectionStatusChanged
Interface
Implement this interface in order to receive connection status changes.
Methods
connectionStatusChanged( ConnectionStatus status , Device device );
Parameter | Notes |
---|---|
status Required ConnectionStatus | New status of the connection |
device Required Device | The terminal which sent this information. |
Code example
public final class EventHandler implements Events.ConnectionStatusChanged {
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Current transaction status
Events.CurrentTransactionStatus
Interface
Implement this interface in order to receive events about the current transaction.
Methods
currentTransactionStatus( StatusInfo status , Device device );
Parameter | Notes |
---|---|
status Required StatusInfo | The StatusInfo of the current transaction |
device Required Device | The terminal the request is sent from. |
Code example
public final class EventHandler implements Events.CurrentTransactionStatus {
@Override
public void currentTransactionStatus(StatusInfo info, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Device capabilities ready
Events.DeviceCapabilitiesReady
Interface
Implement this interface in case the payment terminal needs to notify the SDK of its capabilities
Methods
deviceCapabilities( DeviceCapabilities capabilities , Device device );
Parameter | Notes |
---|---|
capabilities Required DeviceCapabilities | The capabilities of the terminal |
device Required Device | The terminal sending its capabilities |
Code example
public final class EventHandler implements Events.DeviceCapabilitiesReady {
@Override
public void deviceCapabilities(DeviceCapabilities capabilities, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Device discovery finished
Events.DeviceDiscoveryFinished
Interface
Implement this interface in order to receive a list of available payment terminals. The event handler defined in this interface is invoked after calling the method searchDevices
Methods
deviceDiscoveryFinished( List<Device> devices );
Parameter | Notes |
---|---|
devices Required List <Device> | A list of available devices. |
Code example
public final class EventHandler implements Events.DeviceDiscoveryFinished {
@Override
public void deviceDiscoveryFinished(List<Device> devices) {
// Receiving a list of connectable payment terminals
foreach(Device device in devices) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
End of transaction
Events.EndOfTransaction
Interface
Implement this interface to receive an event when a transaction is complete.
Methods
dendOfTransaction( TransactionResult result , Device device );
Parameter | Notes |
---|---|
result Required TransactionResult | Holds all the information about the transaction. |
device Required Device | The payment terminal. |
Code example
public final class EventHandler implements Events.EndOfTransaction {
@Override
public void endOfTransaction(TransactionResult result, Device device) {
// Check the status of the transaction, save it, ...
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Hardware status changed
Events.HardwareStatusChanged
Interface
Implement this interface in order to receive events when the hardware status changes.
Methods
hardwareStatusChanged( HardwareStatus status , Device device );
Parameter | Notes |
---|---|
status Required HardwareStatus | New status of the hardware. |
device Required Device | The payment terminal. |
Code example
public final class EventHandler implements Events.HardwareStatusChanged {
@Override
public void hardwareStatusChanged(HardwareStatus status, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Log
Events.Log
Interface
An interface which needs to be implemented and added as a listener to receive logging information.
Extends
Code example
public final class EventHandler implements Events.Log {
@Override
public void deviceLogsReady(String logs, Device device) { ... }
@Override
public void onMessageLogged(LogLevel level , String message) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
MessageHandling
Events.MessageHandling
Interface
An interface which needs to be implemented and added as a listener to get events which are called when the sdk asks the application to display or hide a message.
Methods
showMessage( String message , Boolean dismissible , int duration );
Parameter | Notes |
---|---|
message Required String | Message to display |
dismissible Required Boolean | A flag that indicates whether the message can be dismissed |
duration Required int | The timeout to hide the message. In milliseconds, if 0 is sent, the message should not auto dismiss. |
hideMessage( String message );
Parameter | Notes |
---|---|
message Required String | Message to hide |
Code example
public final class EventHandler implements Events.MessageHandling {
@Override
public void showMessage(String message, Boolean dismissible, int duration) {
// Show message for a 'duration' period (if duration = 0 DO NOT dismiss until hideMessage(String message) event is received) and make it dismissible if the input marks it as possible
}
@Override
public void hideMessage(String message) {
// Hide the message
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
On message logged
Events.OnMessageLogged
Interface
Implement this interface to receive logs from the payment terminal. Methods
onMessageLogged( LogLevel level , String message );
Parameter | Notes |
---|---|
level Required LogLevel | The LogLevel of the logging |
message RequiredString | The log trace which was logged by the SDK. |
Code example
public final class EventHandler implements Events.OnMessageLogged {
@Override
public void onMessageLogged(LogLevel level, String message) {
// Process log trace
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
PhysicalKeyboardEvent
Events.PhysicalKeyboardEvent
Interface
An interface which needs to be implemented and added as a listener to get events coming from the PAX A80 physical keyboard.
Methods
onKeyPressed( PaxA80Keys key );
Parameter | Notes |
---|---|
key Required PaxA80Keys | The name of the key that has been pressed |
Code example
public final class EventHandler implements Events.PhysicalKeyboardEvent {
@Override
public void onKeyPressed(String key) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
PendingResults
Events.PendingResults
Interface
An interface which needs to be implemented and added as a listener to receive information about pending TransactionResults. In case of a communication failure between the SDK and the payment terminal there might be a result pending from the transaction which did not get sent to the SDK.
Code example
public final class EventHandler implements Events.PendingResults {
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Extends
PaymentProvider
Events.PaymentProvider
Interface
An interface which needs to be implemented and added as a listener to receive all available events related to financial operations.
Extends
SignatureRequired
EndOfTransaction
OnMessageLogged
CurrentTransactionStatus
PrinterEvents
Events.PrinterEvents
Interface
An interface which needs to be implemented and added as a listener to get events coming from the printer.
Methods
printSuccess( );
printError(PrintError error);
Parameter | Notes |
---|---|
error Required PrintError | Enum detailing the reason of the error |
Code example
public final class EventHandler implements Events.PrinterEvents {
@Override
public void printSuccess() {
// Successful print action
}
@Override
public void printError(PrintError error) {
// Unable to perform print action due to error
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Report result
Events.ReportResult
Interface
Implement this interface to receive an event when a report result from a getTransactionsReport is returned.
Methods
reportResult( TypeOfResult type , String report , DeviceStatus status , Device device );
Parameter | Notes |
---|---|
type Required TypeOfResult | The type of the report |
report Required String | The text of the report |
status Required DeviceStatus | The status of the device |
device Required Device | The terminal sending the report |
Code example
public final class EventHandler implements Events.ReportResult {
@Override
public void reportResult(TypeOfResult type, String report, DeviceStatus status, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Required
Events.Required
Interface
You must provide a class implementing this interface when initializing the SDK.
Code example
public final class EventHandler implements Events.Required {
@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device) { ... }
@Override
public void endOfTransaction(TransactionResult transactionResult, Device device) { ... }
@Override
public void deviceDiscoveryFinished(List devices) { ... }
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Events
DeviceDiscoveryFinished
SignatureRequired
EndOfTransaction
PendingResults
Signature required
Events.SignatureRequired
Interface
The SignatureRequired interface must be implemented in order to receive an event when a card requires a signature as a verification method. This interface is only required for an Hilite integration, PAX and Telpo terminals automatically prompt for signature capture on the terminal.
Methods
signatureRequired( SignatureRequest request , Device device );
Parameter | Notes |
---|---|
request Required SignatureRequest | Holds the signature request. |
device RequiredDevice | The payment terminal. |
Code example
public final class EventHandler implements Events.SignatureRequired {
@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device) {
// Save merchant receipt
String merchantReceipt = signatureRequest.getMerchantReceipt();
api.signatureResult(true);
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Status
Events.Status
Interface
An interface which needs to be implemented and added as a listener to receive connection and transaction statuses.
Code example
public final class EventHandler implements Events.Status {
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
@Override
public void hardwareStatusChanged(HardwareStatus status, Device device) { ... }
@Override
public void currentTransactionStatus(StatusInfo info, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Extends
ConnectionStatusChanged
HardwareStatusChanged
CurrentTransactionStatus
Transaction result ready
Events.TransactionResultReady
Interface
Implement this interface in order to receive an event after a pending TransactionResult has been recovered from the payment terminal.
Methods
transactionResultReady( TransactionResult transactionResult , Device device );
Parameter | Notes |
---|---|
transactionResult Required TransactionResult | A TransactionResult is containing all information about the recovered transaction. |
device Required Device | The payment terminal. |
Code example
public final class EventHandler implements Events.TransactionResultReady {
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Transaction started
Events.TransactionStarted
Interface
Implement this interface in order to receive an event when a transaction is started through the Cloud API channel.
IMPORTANT NOTE: This interface is only available for cloud-enabled devices. See DeviceCapabilitiesReady interface.
Methods
transactionStarted( TransactionType transactionType , BigInteger amount , Currency currency );
Parameter | Notes |
---|---|
transactionType Required TransactionType | Type of transaction started |
amount Required BigInteger | Amount in the minor unit of currency (f.ex. 1000 is 10.00 GBP) |
currency Required Currency | Currency of the transaction started |
Code example
public final class EventHandler implements Events.TransactionStarted {
@Override
public void transactionStarted(TransactionType type, BigInteger amount, Currency currency) {
// Notify the app user transaction has been started ...
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);